Extended out of office message processing

ABSTRACT

Message processing includes activating an out-of-office function for a messaging account, wherein the out-of-office function has a scheduled end time. A determination is made, using a processor, that a current time is after the scheduled end time and that a deactivation condition for the out-of-office function has not occurred. Responsive to the determination, an out-of-office action is performed using the processor.

BACKGROUND

When a user of a messaging system, e.g., electronic mail, is out of theoffice for a period of time, the user typically activates an automatedreply function. The automated reply function automatically sends a replyin response to each message that is received in the user's messagingaccount. The automated reply typically includes text indicating when theuser will be back in the office and able to respond to the message thattriggered the automated reply.

In some cases, the user is out of the office for longer than anticipatedwithout access to the messaging system. As the date noted in theautomated reply comes and goes, people attempting to contact the absentuser that previously received an automated reply expect some sort offollow-up action to occur based upon the assumption that the absent useris back in the office.

When no follow-up action occurs, people may become frustrated by thelack of action while remaining unaware that the absent user is still notin the office. Further, when one sends a further message to the absentuser, the same automated reply may be received in response, which nowincludes incorrect and out-of-date information. Alternatively, nofurther automated message is sent. In either case, the person trying tocontact the absent user may interpret the lack of action or contact thatthe absent user is choosing not to respond when in fact the absent useris unable to respond.

BRIEF SUMMARY

A method includes activating an out-of-office (OOO) function for amessaging account, wherein the OOO function has a scheduled end time.The method also includes determining, using a processor, that a currenttime is after the scheduled end time and that a deactivation conditionfor the OOO function has not occurred. The method further includes,responsive to the determining, performing an OOO action using theprocessor.

A system includes a processor programmed to initiate executableoperations. The executable operations include activating an OOO functionfor a messaging account, wherein the OOO function has a scheduled endtime, and determining that a current time is after the scheduled endtime and that a deactivation condition for the OOO function has notoccurred. The executable operations also include performing anout-of-office action responsive to the determining.

A computer program product includes a computer readable storage mediumhaving program code stored thereon. The program code is executable by aprocessor to perform a method. The method includes activating, using theprocessor, an OOO function for a messaging account, wherein the OOOfunction has a scheduled end time, and determining, using the processor,that a current time is after the scheduled end time and that adeactivation condition for the OOO function has not occurred. The methodfurther includes, responsive to the determining, performing an OOOaction using the processor.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an exemplary messaging system.

FIG. 2 is a block diagram illustrating an exemplary data processingsystem configured for out-of-office message processing.

FIG. 3 is a block diagram illustrating an exemplary window of a userinterface for an out-of-office function.

FIG. 4 is a timeline illustrating an example of out-of-office messageprocessing.

FIGS. 5A and 5B, taken collectively, are a flow chart illustrating amethod of out-of-office message processing.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer-readablemedium(s) having computer-readable program code embodied, e.g., stored,thereon.

Any combination of one or more computer-readable medium(s) may beutilized. The computer-readable medium may be a computer-readable signalmedium or a computer-readable storage medium. The phrase“computer-readable storage medium” means a non-transitory storagemedium. A computer-readable storage medium may be, for example, but notlimited to, an electronic, magnetic, optical, electromagnetic, infrared,or semiconductor system, apparatus, or device, or any suitablecombination of the foregoing. More specific examples (a non-exhaustivelist) of the computer-readable storage medium would include thefollowing: an electrical connection having one or more wires, a portablecomputer diskette, a hard disk drive (HDD), a solid state drive (SSD), arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), a digital versatiledisc (DVD), an optical storage device, a magnetic storage device, or anysuitable combination of the foregoing. In the context of this document,a computer-readable storage medium may be any tangible medium that cancontain, or store a program for use by or in connection with aninstruction execution system, apparatus, or device.

A computer-readable signal medium may include a propagated data signalwith computer-readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer-readable signal medium may be any computer-readable medium thatis not a computer-readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer-readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber, cable, RF, etc., or any suitable combination ofthe foregoing. Computer program code for carrying out operations foraspects of the present invention may be written in any combination ofone or more programming languages, including an object orientedprogramming language such as Java™, Smalltalk, C++ or the like andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer, or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer, other programmable data processing apparatus,or other devices create means for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer, other programmabledata processing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

For purposes of simplicity and clarity of illustration, elements shownin the figures have not necessarily been drawn to scale. For example,the dimensions of some of the elements may be exaggerated relative toother elements for clarity. Further, where considered appropriate,reference numbers are repeated among the figures to indicatecorresponding, analogous, or like features.

One or more embodiments relate to out-of-office (OOO) messageprocessing. In accordance with the inventive arrangements disclosedherein, OOO message processing is provided in which a message directedto a first recipient can be forwarded to one or more alternative, orsecond, recipients under particular circumstances. Automated replies toreceived messages can be sent. Depending upon the circumstances in whicha message is received while an OOO function is activated, an alternativeautomated reply can be sent. The alternative automated reply canindicate that the first recipient is out of the office longer thananticipated. Further aspects of the embodiments are described withreference to the figures below.

FIG. 1 is a block diagram illustrating an exemplary messaging system100. As pictured, messaging system 100 includes clients 105, 110, and115 and a server 120. Each of clients 105-115 is implemented as a dataprocessing system executing suitable client messaging software. Server120 is implemented as a data processing system executing suitable servermessaging software. Clients 105-115 and server 120 are communicativelylinked through a network 125. Network 125 can be implemented as, orinclude, any of a variety of different networks such as a WAN, a LAN, awireless network, a mobile network, a Virtual Private Network (VPN), theInternet, or the like.

Each of clients 105-115 is associated with a particular messagingaddress, e.g., an electronic mail (email) address, for the purpose ofrouting messages. A messaging address uniquely identifies a messagingaccount. Within this specification, while reference is made to sendingmessages to a particular client, user, recipient, etc., it should beappreciated that the message is being sent to a particular messagingaddress, and as such, a particular messaging account, associated withthe user, client, and/or recipient as the case may be. A “user” refersto a human being operating a data processing system. In this regard, asender also refers to a user with an associated messaging address. Forease of illustration, it is assumed that each client is associated withonly one messaging address, though this need not be the case and theembodiments disclosed within this specification are not intended to belimited in this regard.

Consider the case in which a user of client 110 has activated an OOOfunction for his/her messaging account, which is associated with client110. In activating the OOO function, the user specifies an end time whenthe OOO function is intended to terminate or become deactivated. The endtime is the time that the user of client 110 expects to be back in theoffice and/or have access to messaging system 100.

As shown, client 105 sends a message 125 to client 110. Client 110 isthe original or intended recipient of message 125. Since message 125 issent while the OOO function for client 110 is active and prior to theend time, server 120 sends automated reply 135 to client 105 indicatingthat the user of client 110 is currently out of the office.

In accordance with another aspect, the OOO function can continue tooperate beyond the end time until a deactivation condition is detected.In the example pictured in FIG. 1, a deactivation condition has not beendetected and the current time is now after, or later, than the end time.Accordingly, server 120 forwards message 125 to an alternate messagingaddress represented as client 115. In addition, server 120 can send asecond, or alternate, automated reply, i.e., automated reply 140, toclient 105. Automated reply 140, for example, can state that message 125has been forwarded to an alternate recipient and/or that the user ofclient 110 is still not in the office.

FIG. 1 is an illustrative example. In one aspect, messaging system 100is an email system. As such, clients 105, 110, and 115 are email clientsand server 120 is an email server. Further, messages are emails.Messaging system 100, however, can be implemented as any of a variety ofother, different messaging systems in which an OOO function isimplemented. In another example, messaging system 100 is implemented asan instant messaging (IM) system. In that case, server 120 is an IMserver; clients 105-115 are IM clients; and messages are instantmessages.

As discussed, in one aspect, the OOO function and corresponding messageprocessing is performed by a server such as server 120. The OOO functioncan be invoked by a user accessing server 120 via client 110 and/oranother user interface (UI) such as a Web interface for server 120 orthe like. While FIG. 1 is described with reference to server 120implementing the OOO function, in another aspect, the OOO function canbe implemented within or by client 110, presuming that client 110remains operational. The embodiments disclosed within this specificationare not intended to be limited by the particular network node in whichthe OOO function is implemented.

FIG. 2 is a block diagram illustrating an exemplary data processingsystem (system) 200 configured for out-of-office message processing. Inone aspect, system 200 represents a client system such as client 110 ofFIG. 1. In another aspect, system 200 represents a server such as server120 of FIG. 1.

As pictured, system 200 includes at least one processor (e.g., a centralprocessing unit) 205 coupled to memory elements 210 through a system bus215 or other suitable circuitry. System 200 can store program codewithin memory elements 210. Processor 205 executes the program codeaccessed from memory elements 210 via system bus 215. In one aspect, forexample, system 200 is implemented as a computer or other programmabledata processing apparatus that is suitable for storing and/or executingprogram code.

It should be appreciated, however, that system 200 can be implemented inthe form of any system including a processor and memory that is capableof performing and/or initiating the functions and/or operationsdescribed within this specification. As such, system 200 can beimplemented in any of a variety of different form factors. Examples ofdifferent varieties of system 200 can include desktop computers, tabletcomputers, portable computers, mobile phones, or the like.

Memory elements 210 include one or more physical memory devices such as,for example, local memory 220 and one or more bulk storage devices 225.Local memory 220 refers to RAM or other non-persistent memory device(s)generally used during actual execution of the program code. Bulk storagedevice(s) 225 can be implemented as a hard disk drive (HDD), solid statedrive (SSD), or other persistent data storage device. System 200 alsocan include one or more cache memories (not shown) that providetemporary storage of at least some program code in order to reduce thenumber of times program code must be retrieved from bulk storage device225 during execution.

Input/output (I/O) devices such as a keyboard 230, a display 235, and apointing device 240 optionally can be coupled to system 200. The I/Odevices can be coupled to system 200 either directly or throughintervening I/O controllers. One or more network adapters 245 also canbe coupled to system 200 to enable system 200 to become coupled to othersystems, computer systems, remote printers, and/or remote storagedevices through intervening private or public networks. Modems, cablemodems, wireless transceivers, and Ethernet cards are examples ofdifferent types of network adapters 245 that can be used with system200.

As pictured in FIG. 2, memory elements 210 store a messaging program250. In one aspect, when system 200 represents a client, messagingapplication 250 is implemented as client-side messaging software. Inanother aspect, when system 200 represents a server, messaging program250 is implemented as server-side messaging software. Messaging program250 implements OOO message processing using OOO function 255 andoptional forwarding rules 260. Messaging program 250, being implementedin the form of executable program code, is executed by system 200 and,as such, can be considered an integrated part of system 200. Messagingprogram 250, the various items included within messaging program 250,e.g., OOO function 255 and/or optional forwarding rules 260, and thevarious data items operated upon by messaging program 250, arefunctional data structures that impart functionality when employed aspart of system 200.

Upon executing messaging program 250, system 200 performs and/orimplements the various operations and/or functions described within thisspecification. In one aspect, the alternate messaging address to which amessage is forwarded as described herein can be selected from aplurality of different potential messaging addresses based upon one ormore of optional forwarding rules 260. For example, each of rules 260,which can be specific to a messaging account, can indicate theconditions under which a particular message is to be forwarded to agiven alternate messaging address. In one aspect, the attributes used todetermine, or select, the alternate messaging address include attributesrelating to the messaging address of the sender of the message that isbeing processed. Further details relating to optional rules and OOOmessaging processing are described with reference to the remainingfigures.

FIG. 3 is a block diagram illustrating an exemplary window 300 of a UIused for an OOO function. Window 300 can be generated and presented upona display, e.g., display 235 of system 200. For example, window 300 canbe generated by a client whether rendered from a messaging programexecuting therein or using a browser from markup language and/or programcode received from a server. In any case, window 300 includes aplurality of controls and fields for specifying the various operationalparameters for implementing the OOO function.

Selection of control 305 turns off the OOO function. Selection ofcontrol 310 turns on the OOO function. When control 310 is selected,controls 315-345 are enabled. Otherwise, controls 315-345 are disabled.When control 310 is selected, a start time for the OOO function isspecified. Within this specification, a “start time” and/or an “endtime” mean a date or a date in combination with a time of day. The starttime indicates when OOO message processing is to start and, as such,becomes active. The end time is the time when OOO message processingstops and the OOO function is deactivated. Control 325 is a text boxconfigured to receive user-specified text that is used for the body of amessage that is sent as the automated reply when a message is receivedand the OOO function is active.

When control 330 is not selected, control 320 for specifying an end timedetermines the actual time that OOO message processing terminates andthe OOO function is disabled. When control 330 is selected, however, theend time specified by control 320 becomes a “scheduled” end time, or anintended end time. More particularly, when control 330 is selected, theOOO function is deactivated only responsive to enumerated deactivationconditions, but not due to the occurrence of the end time specifiedusing control 320. The monitoring or detection of the deactivationconditions, apart from a user manually deactivating the OOO function,begins only after the scheduled end time specified by control 320.

Control 335 allows the user to specify an extended end time. An extendedend time also is a date or a date in combination with a time of day. Theextended end time occurs after the end time. Typically, the extended endtime is a predetermined amount of time after the scheduled end time. Itshould be appreciated that while control 335 is configured to receive adate and (optionally) a time, in another aspect, a control can beprovided that allows the user to specify an amount of time, e.g., 1 day,that is added to the scheduled end time. In either case, an extended endtime is specified when control 330 is selected.

Control 340 is a text box configured to receive user specified text thatis used as the body of an automated reply. More particularly, the textentered in control 340 is used as the body of an alternate, or second,automated reply that can be sent when the OOO function is active. Ingeneral, the text in control 340 is sent when the OOO function isactive, after the extended end time, and when no deactivation conditionhas been detected.

Control 345 allows a user to specify one or more forwarding rules thatdictate the particular alternate messaging address(es) to which receivedmessages are to be forwarded. In one example, a single forwarding rulecan be entered in the form of a messaging address to which all messagesare forwarded. In another example, multiple forwarding rules can bespecified. Each forwarding rule can specify a different alternatemessaging address and an attribute of the message that is received thatcauses the forwarding rule to be applied. One example of a forwardingrule can specify that any message received from a particular individual,a particular domain, etc., is to be forwarded to messaging address A.Another example of a forwarding rule can specify that any other messageis to be forwarded to messaging address B. In this manner, particularones of forwarding rules are correlated with the incoming message towhich an automated reply is to be provided, e.g., using attributes ofthe incoming message.

FIG. 4 is a timeline illustrating an example of out-of-office messageprocessing. The timeline of FIG. 4 illustrates the processing that isimplemented by a system as described with reference to FIGS. 1-3. Forexample, at time T1 the OOO function is activated. The OOO function isactivated by the user choosing to activate the function or by theoccurrence of the start time as specified in FIG. 3. In this example,extended OOO message processing has been activated, e.g., by selectingcontrol 330 of FIG. 3. Accordingly, the scheduled end time for OOOmessage processing is at T2, as specified through control 320 of FIG. 3.The extended end time as specified using control 335, is at time T3. Adeactivation condition is detected at time T4.

For purposes of illustration, consider the case in which the OOOfunction has been activated for a messaging account in accordance withthe timeline of FIG. 4. When a message is sent to the messaging accountanytime from time T1 up to and including time T2, an automated reply issent to the sender of the message. For example, the text included incontrol 325 is placed in the body of the automated reply. When a messageis sent to the messaging account after time T2 and up to, and including,time T3, again, an automated reply message is sent to the sender. Theautomated reply is the same message, e.g., same text or body as used formessage, from time T1 to time T2.

When a message is sent to the messaging account after time T3 and nodeactivation condition has been detected, additional message processingis performed. More particularly, the message is forwarded to analternate messaging address pursuant to any applicable forwardingrule(s). Further, the automated reply that is sent to the sender of themessage utilizes the text specified in control 340. The alternatemessaging address to which the message is forwarded is one thatcorresponds to a designated backup, supervisor, etc., for the user thatis still out of the office.

The processing described that occurs after time T3 continues until adeactivation condition is detected as shown at time T4. One example of adeactivation condition is when the user associated with the messagingaccount for which the OOO function is active accesses the messagingaccount. Accessing the messaging account can include logging into themessaging account and/or system, manually turning off the OOO function,checking newly received messages, e.g., an inbox, or the like.

In another aspect, when time T3 occurs without detecting a deactivationcondition, the system can identify any messages that were received fromtime T1 up through time T3. Such messages can be forwarded pursuant toany applicable rules. In another aspect, the system can send a second,e.g., the alternate, automated reply to the senders of such messages. Itshould be appreciated that the particular action that is to be taken caninclude sending the alternate automated reply, forwarding the message asspecified, or both.

In still another aspect, time T2 can be equal to time T3. In that case,the messaging forwarding and other OOO actions described can beperformed any time the current time is after the scheduled end time,e.g., without having to wait for a predetermined amount of time afterthe scheduled end time to elapse.

FIGS. 5A and 5B, taken collectively, are a flow chart illustrating amethod 500 of out-of-office message processing. Method 500 can beperformed by a system as described within this specification. Method 500begins in block 505 where the OOO function is activated for a particularmessaging account. For example, the OOO function is activated within thesystem responsive to a user input requesting activation for the OOOfunction on the user's messaging account. For purposes of illustration,it can be assumed that the user has setup the extended OOO messageprocessing in which a scheduled end time has been specified and anextended end time, whether explicitly specified or specified as anamount of time measured from the expiration of the scheduled end time.

In block 510, the system determines whether the current time is afterthe scheduled end time. The system, for example, compares the currenttime with the scheduled end time. If the current time is not after thescheduled end time, method 500 continues to block 515. If the currenttime is after the scheduled end time, method 500 continues to block 525.

In block 515, the system determines whether a message has been receivedfor the messaging account. If so, method 500 continues to block 520. Ifnot, method 500 loops back to block 510 to continue processing. In block520, the system sends an automated reply to the sender. The automatedreply, e.g., a first automated reply, can indicate that the user isexpected back by the scheduled end date. After block 520, method 500loops back to block 510.

Continuing with block 525, the system determines whether thepredetermined amount of time has elapsed after the scheduled end timewithout detecting a deactivation condition. The predetermined amount oftime is the amount of time from the scheduled end time to the extendedend time. If the predetermined amount of time after the scheduled endtime has elapsed (e.g., the current time is after the extended end time)and a deactivation condition has not been detected, method 500 continuesto block 540 of FIG. 5B. If not, method 500 proceeds to block 525.

In block 530, the system determines whether a message has been receivedfrom the scheduled end time up to and including the extended end timewithout a deactivation condition having been detected. If so, method 500continues to block 535. If not, method 500 loops back to block 510 tocontinue processing. In block 535, the system sends an automated replyto the sender, e.g., the first automated reply. Though not explicitlyillustrated for blocks 525 and 530, it should be appreciated that anytime a deactivation condition is detected, the OOO function isdeactivated and OOO message processing can be discontinued.

As noted, in another embodiment not reflected in FIG. 5, expiration ofthe predetermined amount of time need not have to occur to implement theOOO actions described such as sending an alternative automated replyand/or forwarding a received message. For example, responsive todetermining that the current time is after the scheduled end time andthat no deactivation condition has been detected, one or more of the OOOactions can be performed. Similarly, previously received messages, e.g.,while the OOO function is active, can be forwarded as describedresponsive to the current time being after the scheduled end timewithout having detected a deactivation condition.

Continuing with block 540, each message that has been received while theOOO function is, or has been, active can be selected or identified asthe case may be. In block 545, the system optionally determines aforwarding rule that is applicable for each identified message. Asnoted, in one aspect, the system includes a single forwarding rule thatis used for processing all messages. Alternatively, the system includesa plurality of rules each specifying different alternate messagingaddresses. In that case, the system correlates the received message withthe appropriate rule, e.g., based upon one or more attributes of thereceived message. In any case, in block 550, the system forwards eachselected message to the alternate messaging address in accordance withthe rule that has been correlated to, or matched with, the message beingforwarded.

In another aspect, in addition to sending an alternative automated replyto each sender of a message received by the system while the OOOfunction is active, the system can identify any meetings on the user'scalendar for which the user is a participant. At a predetermined amountof time prior to the meeting time, if a deactivation condition has notyet been detected, the system can send a message, e.g., the alternativeautomated reply, to the meeting organizer. For example, 15 minutes priorto the start of a meeting of which the user of the messaging account isan attendee, when the current time is after the extended end time, andwhen a deactivation condition has not been detected, the system sends anautomated reply to the meeting organizer. Accordingly, the meetingorganizer is notified that the user is still out of the office andunable to attend the meeting.

In block 555, the system sends an alternative, or second, automatedreply to each recipient of a first automated reply, e.g., each sender ofa message to the subject messaging account from the time the OOOfunction was activated up to the current time. The alternative automatedreply can indicate that the user of the messaging account is still outof the office. The alternative automated reply further can indicate thatthe message has been forwarded to another user providing support oracting as a backup for the user that is still out of the office. Itshould be appreciated that the particular OOO actions that are performedcan vary according to user preference. For example, block 550 (and 545)can be performed without block 555, block 555 can be performed withoutperforming block 550 (or 545), or both blocks 550 and 555 can beperformed.

In block 560, the system determines whether a new message has beenreceived. If so, method 500 continues to block 565. If not, method 500proceeds to block 580. In block 565, the system optionally determines aforwarding rule for the received message. The received message can becorrelated to, or matched with, a forwarding rule. In block 570, thesystem forwards the received message in accordance with the forwardingrule determined in block 565. In block 575, the system sends analternative, e.g., a second, automated reply to the sender of themessage received in block 560. As noted, depending upon user preference,forwarding can be enabled in combination with the alternative automatedreply, only forwarding can be performed, or only the alternativeautomated reply can be sent. The particular ones of the OOO actionsperformed can be specified by the user.

In block 580, the system determines whether a deactivation condition hasbeen detected. If so, method 500 continues to block 585. If not, method500 loops back to block 560 to continue processing as the current timenow exceeds the extended end time. In block 585, responsive to adetected deactivation condition, the system terminates OOO messageprocessing by deactivating or disabling the OOO function.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a,” “an,” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “includes,”“including,” “comprises,” and/or “comprising,” when used in thisspecification, specify the presence of stated features, integers, steps,operations, elements, and/or components, but do not preclude thepresence or addition of one or more other features, integers, steps,operations, elements, components, and/or groups thereof.

Reference throughout this specification to “one embodiment,” “anembodiment,” or similar language means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment disclosed within thisspecification. Thus, appearances of the phrases “in one embodiment,” “inan embodiment,” and similar language throughout this specification may,but do not necessarily, all refer to the same embodiment.

The term “plurality,” as used herein, is defined as two or more thantwo. The term “another,” as used herein, is defined as at least a secondor more. The term “coupled,” as used herein, is defined as connected,whether directly without any intervening elements or indirectly with oneor more intervening elements, unless otherwise indicated. Two elementsalso can be coupled mechanically, electrically, or communicativelylinked through a communication channel, pathway, network, or system. Theterm “and/or” as used herein refers to and encompasses any and allpossible combinations of one or more of the associated listed items. Itwill also be understood that, although the terms first, second, etc. maybe used herein to describe various elements, these elements should notbe limited by these terms, as these terms are only used to distinguishone element from another unless stated otherwise or the contextindicates otherwise.

The term “if” may be construed to mean “when” or “upon” or “in responseto determining” or “in response to detecting,” depending on the context.Similarly, the phrase “if it is determined” or “if [a stated conditionor event] is detected” may be construed to mean “upon determining” or“in response to determining” or “upon detecting [the stated condition orevent]” or “in response to detecting [the stated condition or event],”depending on the context.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the embodiments disclosed within this specification havebeen presented for purposes of illustration and description, but are notintended to be exhaustive or limited to the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of theembodiments of the invention. The embodiments were chosen and describedin order to best explain the principles of the invention and thepractical application, and to enable others of ordinary skill in the artto understand the inventive arrangements for various embodiments withvarious modifications as are suited to the particular use contemplated.

1-9. (canceled)
 10. A system comprising: a processor programmed toinitiate executable operations comprising: activating an out-of-officefunction for a messaging account, wherein the out-of-office function hasa scheduled end time; determining that a current time is at least apredetermined amount of time after the scheduled end time and that adeactivation condition for the out-of-office function has not occurred;and responsive to the determining, performing an out-of-office action.11. The system of claim 10, wherein the deactivation condition comprisesa user of the messaging account accessing the messaging account.
 12. Thesystem of claim 11, wherein accessing the messaging account comprisesthe user of the messaging account checking the messaging account for amessage.
 13. The system of claim 11, wherein accessing the messagingaccount comprises the user of the messaging account turning off theout-of-office function.
 14. The system of claim 10, wherein themessaging account is associated with a first messaging address, andwherein the out-of-office action comprises: selecting each messagereceived while the out-of-office function is active; and forwarding eachmessage to a second messaging address.
 15. The system of claim 14,wherein forwarding comprises: correlating at least one of a plurality offorwarding rules with each message, wherein each forwarding rulespecifies a different second messaging address; wherein each message issent to the second messaging address specified by the correlatedforwarding rule.
 16. The system of claim 10, wherein the out-of-officeaction comprises: determining each messaging address to which a firstautomated reply was sent as part of the out-of-office function; andsending each messaging address a second automated reply different fromthe first automated reply.
 17. The system of claim 10, wherein theout-of-office action comprises: responsive to a message sent to themessaging account, forwarding the message to an alternative messagingaddress.
 18. A computer program product comprising a computer readablestorage medium having program code stored thereon, the program codeexecutable by a processor to perform a method comprising: activating,using the processor, an out-of-office function for a messaging account,wherein the out-of-office function has a scheduled end time;determining, using the processor, that a current time is at least apredetermined amount of time after the scheduled end time and that adeactivation condition for the out-of-office function has not occurred;and responsive to the determining and using the processor, performing anout-of-office action.
 19. The computer program product of claim 18,wherein the deactivation condition comprises a user of the messagingaccount accessing the messaging account.
 20. The computer programproduct of claim 19, wherein accessing the messaging account comprisesthe user of the messaging account checking the messaging account for amessage.
 21. The computer program product of claim 19, wherein accessingthe messaging account comprises the user of the messaging accountturning off the out-of-office function.
 22. The computer program productof claim 18, wherein the messaging account is associated with a firstmessaging address, and wherein the out-of-office action comprises:selecting each message received while the out-of-office function isactive; and forwarding each message to a second messaging address. 23.The computer program product of claim 22, wherein forwarding comprises:correlating at least one of a plurality of forwarding rules with eachmessage, wherein each forwarding rule specifies a different secondmessaging address; wherein each message is sent to the second messagingaddress specified by the correlated forwarding rule.
 24. The computerprogram product of claim 18, wherein the out-of-office action comprises:determining each messaging address to which a first automated reply wassent as part of the out-of-office function; and sending each messagingaddress a second automated reply different from the first automatedreply.
 25. The computer program product of claim 18, wherein theout-of-office action comprises: responsive to a message sent to themessaging account, forwarding the message to an alternative messagingaddress.
 26. The system of claim 10, wherein the current time is atleast a predetermined amount of time after the scheduled end time. 27.The computer program product of claim 18, wherein the current time is atleast a predetermined amount of time after the scheduled end time.